The present application relates to multi-core processing.
Intel's newest manycore processor, the Xeon Phi, is a PCIe device with more than 50 cores supporting more than 200 hardware threads. Unlike the GPU and other manycores, several design choices make the Xeon Phi easier to program. First, its cores are x86 compatible. Second, it runs the Linux operating system, enabling easy multiprocessing with services such as virtual memory and context switching. Third, it supports OpenMP, a popular parallel programming model. Intel also provides middleware to manage data transfers between the host and coprocessor. Consequently, the Xeon Phi is widely perceived to be more usable across a range of parallel applications, especially when compared to other manycore offerings in the recent past.
Many suitable applications for the Xeon Phi can be expressed using a bag-of-tasks framework. Bag-of-tasks applications are those whose tasks are completely independent. Although conceptually simple, this framework is typical of a large class of problems such as satellite imaging, BOINC-like computations (SETI@home), image processing, networking and several others. Tasks belonging to bag-of-tasks applications typically have real-time constraints, which we refer to as the task deadline. For instance, a satellite may produce a certain amount of data periodically, say once each revolution; in order to avoid backlog, the system must complete processing the data before the satellite comes around again and dumps the next round of data. Therefore, in the bag-of-task application scenarios, a key requirement is to complete the processing of a task before its deadline.